Many enterprises currently employ computer systems based on the client/server architecture. In a client/server architecture, a client computer (usually a user computer, such as a PC) requests a number of resources from server applications (usually on a larger, specialized computer), such as data, applications, and some processing. Clients and servers are connected over a network, such as a Local Area Network (LAN) or a Wide Area Network (WAN), and many computer systems employ one or more applications servers and one or more database servers to communicate with many clients and to provide them with a full range of applications and data.
Some systems may utilize general-purpose PCs as “fat clients.” In other words, while the client computer will receive some applications and processing from the server, most of the storage and processing will occur at the client, which may include multiple storage devices (hard drive, floppy drive, CR ROM drive, etc.) on which many programs are stored and ready to run with little or no input from the server. In such systems, the server's main function may be that of a remote hard drive, simply storing and retrieving programs and data while doing little processing for client application uses.
Some systems may utilize what are referred to as “thin clients.” Thin clients can be any type of computer, but are usually stripped-down versions of a user computer with very minimal storage capacity. In a thin client arrangement, much of the processing may be accomplished by the server, as well as much of the application storage. Thus, some thin client arrangements may be considered highly centralized because most of the functionality and storage resides on the server side while the clients operate almost as dumb terminals.
Various techniques exist for operating a thin client system, including storing most of the applications and the operating system on a server computer, such that the thin clients actually boot from the server. Another technique involves storing an operating system on a thin client so that the client boots itself to some degree, depending on the number of routines that are on the client versus on the server.
In a thin client system, it may be desirable to replace the operating system on the thin client from time to time, and a traditional way to replace that operating system is to employ a module on the operating system itself that handles some of the replacement functions. However, if the operating system becomes non-functional (through, for example, a write error or corruption) the module may be inaccessible, which is a disadvantage of many traditional systems.